package org.example.service;

import org.apache.ibatis.annotations.Select;
import org.example.api.ProductInterface;
import org.example.mapper.OrderMapper;
import org.example.model.OrderInfo;

import org.example.model.ProductInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

/**
 * 所谓的继承式和抽取式
 * 继承的话，在product-api上声明一个一个接口，然后在服务消费的时候，在声明一个接口，继承那个接口，controller上面实现product-api接口
 * 抽取式的话，在product-api上面就是写好路径和value，通过install打包到maven仓库
 * 服务方引入这个包，在启动类上面加上需要EnableFeignCilents 扫描的接口类，就可以完成远程调用
 */
@Service
public class OrderService {
    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private ProductInterface productInterface;
    @Autowired
    private RestTemplate restTemplate;
    public OrderInfo selectOrderById(Integer orderId){
        OrderInfo orderInfo = orderMapper.selectOrderById(orderId);
        //远程调用
        ProductInfo productInfo = productInterface.getProductById(orderInfo.getProductId());
        orderInfo.setProductInfo(productInfo);
        return orderInfo;
    }
}
